Operation of sectorized communications from aerospace platforms using reinforcement learning

ABSTRACT

The disclosure provides a method of operating a communication network. The method includes receiving input data related to a state of the communication network and operation of the communication network. The method then includes determining a policy for the communication network based on the input data. The policy is a set of features for forming a plurality of communication links in the communication network over a time interval. The plurality of communication links provides one or more paths through the communication network. Determining the policy is based at least in part on utility values of previous policies. The utility values of previous policies are derived using simulation and/or real-world implementation of the previous policies. The communication network is then operated to implement the policy in the time interval.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.17/087,933, filed Nov. 3, 2020, which is a continuation of U.S.application Ser. No. 16/593,536, filed Oct. 4, 2019, now issued as U.S.Pat. No. 10,863,369, which is a continuation of U.S. application Ser.No. 16/222,407, filed Dec. 17, 2018, now issued as U.S. Pat. No.10,477,418, the entire disclosures of which are incorporated herein byreference.

BACKGROUND

Information can be transmitted over directional networks, such asaerospace and other mobile networks. In such networks, links can beformed between pairs of nodes by aiming transceivers of each node pairtowards each other. In some implementations, nodes may includenon-geostationary satellite orbit (NGSO) satellites or otherhigh-altitude platforms (HAPs) that are in motion relative to the Earth.Such networks may provide service to geographic regions.

BRIEF SUMMARY

Aspects of the disclosure provide for a method of operating acommunication network that includes a plurality of nodes. A first nodeof the plurality of nodes is in motion relative to a second node of theplurality of nodes. The method includes receiving, by one or moreprocessors, input data related to a state of the communication networkand input data related to operation of the communication network for afirst time interval; determining, by the one or more processors, a firstpolicy for the communication network based on the input data, the firstpolicy being a set of features for forming a plurality of communicationlinks in the communication network over the first time interval, theplurality of communication links providing one or more paths through thecommunication network; determining, by the one or more processors, autility value associated with the first policy as a function of aperformance metric of the communication network in the first timeinterval; determining, by the one or more processors, a second policyfor the communication network for a second time interval based at leastin part on the utility value associated with the first policy; andoperating, by the one or more processors, the communication network toimplement the second policy in the second time interval.

In one example, the plurality of nodes includes one or morenon-geostationary satellites. In another example, the input data relatedto the operation of the communication network includes weatherconditions or forecasts for atmospheric levels. In a further example,determining the utility value includes operating the communicationnetwork to implement the first policy; and determining a performancemetric of the communication network while implementing the first policy.In yet another example, determining the utility value includessimulating implementation of the first policy in the communicationnetwork; and determining a predicted performance metric of thecommunication network in the simulation.

In a still further example, the one or more processors form a neuralnetwork. In this example, the method also includes training the neuralnetwork by receiving, by the one or more processors, input data relatedto state information of the communication network; determining, by theone or more processors, a training policy based on the input data;simulating, by the one or more processors, the training policy based oninternal and external influences of the communication network; anddetermining, by the one or more processors, a utility value of thetraining policy according to the simulation. Also in this example,determining the first policy is also based on the training policy andthe corresponding utility value. In yet another example, determining thefirst policy includes identifying a trend in features of policies storedin a database; and selecting features for the first implementationpolicy that increase a performance metric of the communication networkaccording to the trend.

Other aspects of the disclosure provide for a system. The systemincludes a memory storing policies for a communication network, eachpolicy being a set of features for forming a plurality of communicationlinks in the communication network over a given time interval and beingassociated with a corresponding utility value, the utility value being afunction of a performance metric of the communication network for thegiven time interval, the plurality of communication links providing oneor more paths through the communication network; and one or moreprocessors capable of accessing the memory, the one or more processorsbeing configured to receive input data related to a state of thecommunication network and input data related to operation of thecommunication network for a first time interval; determine a firstpolicy for the communication network based on the input data, the firstpolicy being a set of features for forming a plurality of communicationlinks in the communication network over the first time interval, theplurality of communication links providing one or more paths through thecommunication network; determine a utility value associated with thefirst policy as a function of a performance metric of the communicationnetwork in the first time interval; determine a second policy for thecommunication network for a second time interval based at least in parton the utility value associated with the first policy; and operate thecommunication network to implement the second policy in the second timeinterval.

In one example, the plurality of nodes includes one or morenon-geostationary satellites. In another example, the input data relatedto the operation of the communication network includes weatherconditions or forecasts for atmospheric levels. In a further example,the utility value is determined based on a performance metric of thecommunication network that is implementing the first policy. In yetanother example, the utility value is determined based on a performancemetric of the communication network that is simulated to implement thefirst policy.

In a still further example, the one or more processors form a neuralnetwork. In this example, the neural network is trained by receivinginput data related to state information of the communication network;determining a training policy based on the input data; simulating thetraining policy based on internal and external influences of thecommunication network; and determining a utility value of the trainingpolicy according to the simulation. Also in this example, the firstpolicy is determined also based on the training policy and thecorresponding utility value. In yet another example, the first policy isdetermined based on a trend in features of policies stored in thememory.

Further aspects of the disclosure provide for a non-transitory, tangiblecomputer-readable storage medium on which computer readable instructionsof a program are stored. The instructions, when executed by one or moreprocessors, cause the one or more processors to perform a method. Themethod includes receiving input data related to a state of thecommunication network and input data related to operation of thecommunication network for a first time interval; determining a firstpolicy for the communication network based on the input data, the firstpolicy being a set of features for forming a plurality of communicationlinks in the communication network over the first time interval, theplurality of communication links providing one or more paths through thecommunication network; determining a utility value associated with thefirst policy as a function of a performance metric of the communicationnetwork in the first time interval; determining a second policy for thecommunication network for a second time interval based at least in parton the utility value associated with the first policy; and operating thecommunication network to implement the second policy in the second timeinterval.

In one example, the one or more processors form a neural network. Inthis example, the method also includes training the neural network byreceiving input data related to state information of the communicationnetwork; determining a training policy based on the input data;simulating the training policy based on internal and external influencesof the communication network; and determining a utility value of thetraining policy according to the simulation. Also in this example, thefirst policy is determined also based on the training policy and thecorresponding utility value. In yet another example, the plurality ofnodes includes one or more non-geostationary satellites.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram 100 of a first communication device and asecond communication device in accordance with aspects of thedisclosure.

FIG. 2 is a pictorial diagram of a network 200 in accordance withaspects of the disclosure.

FIG. 3 is a block diagram of a system m accordance with aspects of thedisclosure.

FIGS. 4A, 4B, and 4C are flow diagrams 400A, 400B, and 400C,respectively, depicting methods in accordance with aspects of thedisclosure.

DETAILED DESCRIPTION

Overview

The technology relates to planning and implementing networkconfigurations for a temporospatial software-defined communicationnetwork by applying reinforcement learning. Each node of thecommunication network may be capable of forming a plurality ofcommunication links by aligning terminals of each node along particularpointing to a plurality of locations. Thus, many differentconfigurations of the network may be possible at any given time.

To determine an overall configuration for the network for a given timeinterval, such as 5 seconds (or more or less), a plurality of inputfeatures may be processed to obtain a set of output features for anetwork configuration for the given time interval that allows thenetwork to maximize a performance metric. The performance metric may be,for instance, amount of data transferred, number of users reached, orgeographic area reached. In order to obtain a set of output featuresfrom the plurality of input features, a machine learning model may beused, such as a neural network.

The features described herein may provide a more efficient means fordetermining features for a temporospatial communication networkconfigured for free-space optical communication. The network featuresmay be determined in shorter intervals and may take into account agreater amount of variables, such as the motion of each node in thetemporospatial communication network or an alignment of the nodes foroptical communication. The machine learning model may be especiallyuseful for a temporospatial communication network in order to accountfor all the variables that may arise in the network, such as when nodesare moving with respect to one another or when the network issoftware-defined. The variables for the communication network mayincrease greatly for every additional node of the network. The featuresmay also allow for an improved performance of the communication networkas better network features are selected over time based on associatedutility values of past settings. In addition, a usable capacity of thenetwork may be increased, which allows more users to be supported by thenetwork. Still further, the features may allow for faster response touser requests for service.

Example Systems

As shown in FIG. 1 , a plurality of communication devices may beconfigured to form a plurality of communication links thereby forming acommunication network 100. Each communication device is a node of thecommunication network 100. The plurality of communication devices incommunication network 100 includes communication devices 102, 104, 106,108, and 110. Each communication device of the plurality ofcommunication devices may be a part of a communication terminal, such asa terrestrial communication terminal or a HAP terminal. HAPs may beballoons, blimps or other dirigibles, airplanes, unmanned aerialvehicles (UAVs), satellites, or any other form of high altitudeplatform. The satellites may be geostationary or non-geostationary.Communication devices may additionally or alternatively be part of othertypes of moveable or stationary communication terminals. At least one ofthe communication devices may be in motion relative to the othercommunication devices. The plurality of communication links may be asubset of all possible links between ones of the plurality ofcommunication devices. In the topology shown in FIG. 1 , all possiblelinks are illustrated as arrows.

The communication network 100 may also include ground terminals 120,122, and 124 as nodes. Ground terminal 120 is in first geographic area130, and ground terminals 122 and 124 are in second geographic area 132.A ground terminal may include a communication device similar tocommunication devices 102, 104, 106, 108, 110 that is configured to bein communication with client devices or server devices. Client devicesmay be cellular phones, laptop computers, desktop computers, wearabledevices, or tablet computers. In some implementations, the communicationnetwork 100 may serve as an access network for the client devices. Thecommunication network 100 also may be connected to a larger network,such as the Internet, and may be configured to provide a client devicewith access to resources stored on or provided through the largercomputer network. The communication network 100 as shown in FIG. 1 isillustrative only, and in some implementations the communication network100 may include additional or different communication devices, clientdevices, or server devices.

FIG. 2 is a block diagram 200 of first communication device 102 of afirst communication terminal configured to form one or more links with asecond communication device, such as communication device 104, 106, 108or client device 120 in the topology of FIG. 1 . For example, the firstcommunication device 102 includes as components one or more processors204, a memory 206, one or more transmitters 212, one or more receivers214, a steering mechanism 216, and one or more sensors 218. The firstcommunication device 102 may include other components not shown in FIG.2 .

The one or more processors 204 may be any conventional processors, suchas commercially available CPUs. Alternatively, the one or moreprocessors may be a dedicated device such as an application specificintegrated circuit (ASIC) or other hardware-based processor, such as afield programmable gate array (FPGA). Although FIG. 2 functionallyillustrates the one or more processors 204 and memory 206 as beingwithin the same block, the one or more processors 204 and memory 206 mayactually comprise multiple processors and memories that may or may notbe stored within the same physical housing. Accordingly, references to aprocessor or computer will be understood to include references to acollection of processors or computers or memories that may or may notoperate in parallel.

Memory 206 may store information accessible by the one or moreprocessors 204, including data 208, and instructions 210, that may beexecuted by the one or more processors 204. The memory may be of anytype capable of storing information accessible by the processor,including a computer-readable medium such as a hard-drive, memory card,ROM, RAM, DVD or other optical disks, as well as other write-capable andread-only memories. The system and method may include differentcombinations of the foregoing, whereby different portions of the data208 and instructions 210 are stored on different types of media. In thememory of each communication device, such as memory 206, calibrationinformation may be stored, such as one or more offsets determined fortracking a signal.

Data 208 may be retrieved, stored or modified by the one or moreprocessors 204 in accordance with the instructions 210. For instance,although the technology is not limited by any particular data structure,the data 208 may be stored in computer registers, in a relationaldatabase as a table having a plurality of different fields and records,XML documents or flat files.

The instructions 210 may be any set of instructions to be executeddirectly (such as machine code) or indirectly (such as scripts) by theone or more processors 204. For example, the instructions 210 may bestored as computer code on the computer-readable medium. In that regard,the terms “instructions” and “programs” may be used interchangeablyherein. The instructions 210 may be stored in object code format fordirect processing by the one or more processors 204, or in any othercomputer language including scripts or collections of independent sourcecode modules that are interpreted on demand or compiled in advance.Functions, methods and routines of the instructions 210 are explained inmore detail below.

The one or more processors 204 are in communication with the one or moretransmitters 212 and the one or more receivers 214. One or moretransmitters 212 and one or more receivers 214 may be part of atransceiver arrangement in the first communication device 102. In someimplementations, the one or more transmitters 212 may be configured totransmit to a plurality of sectors, or geographic areas, such as bytransmitting forty (40) communication beams to different sectors. Theone or more processors 204 may therefore be configured to transmit, viathe one or more transmitters 212, data in a signal, and also may beconfigured to receive, via the one or more receivers 214, communicationsand data in a signal. The one or more transmitters 212 may be configuredto transmit an optical signal and/or another type of signal, such as amillimeter wave signal or a regular 4G type signal operating in standard4G Long-Term Evolution (LTE) bands. The one or more receivers 214 may beconfigured to receive an optical signal or another type of signal, suchas a millimeter wave signal or a regular 4G type signal operating instandard 4G LTE bands. The received signal may be processed by the oneor more processors 204 to extract the communications and data.

Furthermore, the one or more processors 204 are in communication withthe steering mechanism 216 for adjusting the pointing direction of theone or more transmitters 212, one or more receivers 214, and/or signal.The steering mechanism 216 may include one or more mirrors that steer asignal through the fixed lenses and/or a gimbal configured to move theone or more transmitters 212 and/or the one or more receivers 214 withrespect to the communication device. The steering mechanism 216 may beconfigured to steer the transmitter(s), receiver(s), and/or signal in atleast two degrees of freedom, such as, for example, yaw and pitch. Theadjustments to the pointing direction may be made to acquire acommunication link, such as a link between first communication device102 and second communication device 104. To perform a search for acommunication link, the one or more processors 204 may be configured usethe steering mechanism 216 to point the one or more transmitters 212and/or the one or more receivers 214 in a series of varying directionsuntil a communication link is acquired. In addition, the adjustments mayoptimize transmission of light from the one or more transmitters 212and/or reception of light at the one or more receivers 214.

The one or more processors 204 are also in communication with the one ormore sensors 218. The one or more sensors 218, or estimators, may beconfigured to monitor a state of the first communication device 102. Theone or more sensors may include an inertial measurement unit (IMU),encoders, accelerometers, or gyroscopes configured to measure one ormore of pose, angle, velocity, torques, as well as other forces. Inaddition, the one or more sensors 218 may include one or more sensorsconfigured to measure one or more environmental conditions such as, forexample, temperature, wind, radiation, precipitation, humidity, etc. Inthis regard, the one or more sensors 218 may include thermometers,barometers, hygrometers, etc. While the one or more sensors 218 aredepicted in FIG. 2 as being in the same block as the other components ofthe first communication device 102, in some implementations, some or allof the one or more sensors may be separate and remote from the firstcommunication device 102.

Each of the communication devices 104, 106, 108, and 110 may include oneor more processors, a memory, one or more transmitters, one or morereceivers, a steering mechanism, and sensors similar to those describedabove. Communication devices of ground terminals 120, 122, and 124 mayalso include one or more processors, a memory, one or more transmitters,and one or more receivers as described above.

FIG. 3 is a block diagram 300 of network controller 300. The networkcontroller 300 may be configured to send control messages tocommunication devices of the communication network 100. The messages maycause a given communication device of the communication network 100 tohave one or more features as part of an overall policy for the givencommunication device or communication network 100. In someimplementations, the network controller 300 may also be configured topass routing information to the communication devices 102, 104, 106,108, 110 of the communication network 100, to configure the topology ofthe network 100, or to schedule changes to the topology of thecommunication network 100 to transmit client data. The networkcontroller 300 may also be configured to communicate with one or moreclient devices 350. As shown in FIG. 3 , the network controller 300 mayinclude one or more processors 310, memory, 320, and communicationssystem 340. The one or more processors 310 may be similar to the one ormore processors 204 described above. In addition, the one or moreprocessors 310 may form a neural network or other type of computingdevice configured to implement a machine learning model.

Memory 320 may store information accessible by the one or moreprocessors 310, including data 322 and instructions 324 that may beexecuted by processor 310. Memory 320, data 322, and instructions 324may be configured similarly to memory 212, data 214, and instructions216 described above. The data 322 may include a topology ofcommunication network 100, availability of each communication device orlink m communication network 100 for a given point in time or period oftime, one or more communication paths through communication network 100for a given point in time or period of time.

The communication system 340 may be used to communication with thecommunication devices 102, 104, 106, 108, 110 or the client devices 350.The communication system may include a Control to Data-Plane Interface(CDPI) driver configured to communicate with a CDPI agent at each of thecommunication devices. In addition, the communications system 340 of thenetwork controller 300 may include one or more northbound interface(NBI) agents configured to communicate with an NBI driver at each groundterminal 120, 122, 124, or each client device 350 associated with one ormore SDN applications. The communication system 340 may optionally oralternatively be configured to transmit and receive a signal via radiofrequencies, optical frequencies, optical fiber, cable, or othercommunication means to and from the communication devices or clientdevices in the communication network 100.

Example Methods

In FIGS. 4A-4C, flow diagrams 400A-400C are shown in accordance withsome of the aspects described above that may be performed, for instance,by the one or more processors 310 of the network controller 300 in orderto determine a set of features for the communication network 100 formingone or more communication links over a given time interval. A timeinterval may be a point in time or a time frame of five (5) seconds ormore or less. Alternatively, the one or more processors of acommunication device, such as one or more processors 204 ofcommunication device 102, may perform some of the aspects in order todetermine a set of features for the communication device for forming oneor more communication links over a given time interval. While FIGS.4A-4C show blocks in a particular order, the order may be varied andthat multiple operations may be performed simultaneously. Also,operations may be added or omitted.

As shown in FIG. 4A, the one or more processors 310 may receive inputdata related to a state of the communication network 100 at block 402.The input data related to the state of the communication network 100 mayinclude features of each communication device in the communicationnetwork 100, such as location, orientation, trajectory or orbital phase,power capacity, battery life, number of channels, backhaul bandwidth, ormechanics. In some implementations, the features of a givencommunication device may be collected using one or more sensors of thegiven communication device. The one or more processors of the givencommunication device may transmit the collected features to the networkcontroller 300. For example, the features of communication device 102may be collected by the one or more processors 204 using the one or moresensors 218 and transmitted to the network controller 300.

In addition or in an alternative implementation, additional input datarelated to the operation of the communication network 100 may also bereceived by the one or more processors 310, such as weather conditionsor forecasts for atmospheric levels, behavior of the communicationsignal between communication devices given the curvature of the Earth,known or detected locations of geostationary satellites, populationdensity, patterns of use, amounts of data to be transferred through thecommunication network 100, terrestrial terminal settings, terrestrialterminal locations, or constraints or regulations for the operation ofthe communication network 100. This data related to the operation of thecommunication network 100 may be received using one or more sensors ofeach communication device and/or a ground terminal in a geographic area.For example, the one or more sensors of a given communication device maydetect environmental conditions around the given communication device,or the ground terminal may transmit forecasts provided by a remotecomputing device. In some further implementations, input data may alsoinclude a request from a client device regarding transfer of data overthe communication network 100. The request may include a sourcelocation, a destination location for the transfer, an amount of data forthe transfer, or a timing for the transfer.

At block 404, the one or more processors 310 may determine the set ofoutput features for a network configuration, or “policy”, for a firsttime interval using the input data. The one or more processors 310 maydetermine a first policy that maximizes one or more performance metricsof the communication network 100 according to constraints and/or rulesof operation presented by the input data. The first policy may be atraining policy for establishing a database of policies. The trainingpolicy may be determined to be a set of communication links and/orcharacteristics of communication beams for each communication link thatoverall satisfy the constraints and/or rules of operation presented bythe input data. The set of communication links to be formed in thecommunication network 100 for the first time interval may create one ormore paths through the communication network 100 according to theconstraints and/or rules. For example, the one or more paths may bedefined at least in part according to the details in the request from aclient device for data transfer. The one or more paths may thereforeinclude at least one path between the source location and thedestination location and may have a capacity for transferring the amountof data specified at the timing specified by the request.

In addition, the characteristics for one or more communication beams fortransmission and/or reception at each communication device of thecommunication network 100 for operation over the first time interval maybe determined according to the constraints and/or rules. For example,the training policy may include characteristics of a communication beamfor a communication link between a first communication device of a HAPterminal and a second communication device of a terrestrialcommunication terminal in a geographic area. Additionally oralternatively, the training policy may include characteristics of acommunication beam between a third communication device of a HAPterminal and a client device in a geographic area. These characteristicsmay include a shape, power, direction, frequency, or channel designationof a communication beam over the first time interval. For example, whenthe input data indicates that mechanics of a communication device areconfigured to move a plurality of communication beams as one unit,rather than separately, the training policy may factor in thisconstraint when determining pointing directions of communication beamsfrom the communication device. Similarly, a location, orientation,and/or trajectory of a communication device indicated by the input datamay provide a constraint regarding what links are available to thecommunication device and pointing directions of communication beams foravailable links. For instance, links with communication devices within alinear distance and an angular distance from the communication devicemay be available to be included in the training policy. A power capacityor battery life of a communication device indicated by the input datamay provide a constraint regarding how many channels may be operated onthe one or more communication beams or how long a set number of channelsmay be operated on the communication beams in the training policy. Thenumber of channel or backhaul bandwidth indicated by the input data mayprovide a constraint regarding an amount of data that may be transmittedover the one or more communication beams in the training policy.

In some cases, the characteristics may include an absence of acommunication beam to and/or from a given communication device of thecommunication network 100, such as by turning off the communication beamthe given communication device. For example, the training policy mayinclude turning off a given communication device to conserve power ofthe given communication device when it is needed to serve a denselypopulated area to which it is travelling.

The process of determining a training policy based on received inputdata may be repeated for a plurality of iterations. The repetition ofdetermining training policies may train the one or more processors 310as a neural network. Each training policy may be for a same timeinterval or different time intervals with same or different input data.The input data for determining a training policy may be from asimulation of the communication network 100. For an initial one or moreiterations, the one or more processors 310 may be configured to selectoutput features for each training policy at random to establish adatabase of policies. For one or more subsequent iterations after theinitial one or more iterations, the one or more processors 310 may beconfigured to determine output features based on previous policies fromthe database or by modifying existing heuristics.

For instance, the output features for a training policy may bedetermined by comparing the policies stored in the database, identifyinga trend or a pattern in the output features of the stored policies, andselecting output features that would increase the one or moreperformance metrics of the communication network 100 according to thetrend or pattern. The trend may be, for example, that a utility value ishigher for previous policies where links between communication devicesare closer to a particular length. As described further below, a utilityvalue may be associated with the one or more performance metrics, suchas an amount of data transferred, a number of users that are reached, oran amount of geographic area covered by the communication network 100implementing a given policy. Using the example trend, the outputfeatures for the training policy may include links between communicationdevices at a distance that is as close to the particular length aspossible given a topology of the communication network 100 derived fromthe input data.

At block 406, for a given iteration, the one or more processors 310 maydetermine a utility value for a training policy according to how thetraining policy performs in simulation. The simulation may factor inknown internal influences, such as self-interference, total frequencyallocated for communication, frequency split allowed due to payloadconstraints, polarization of antennas, time limitations on switchingbetween settings, or total possible transmit power. The simulation mayalso factor in known external influences, such as how types of weatheraffect free-space optical communication. The simulation may also factorin data related to the operation of the communication network 100. Asmentioned previously, this data may include weather conditions orforecasts for atmospheric levels, behavior of the communication signalbetween nodes given the curvature of the Earth, locations ofgeostationary satellites, population density, patterns of use, amountsof data to be transferred through the communication network 100,terrestrial terminal settings, terrestrial terminal locations, orconstraints or regulations for the operation of the communicationnetwork 100.

Given the internal influences, external influences, and operation dataof the communication network 100, the one or more processors 310 maypredict one or more performance metrics of the communication network 100implementing the training policy during the first time interval. Forexample, the utility value of the training policy may then be determinedas a function of the predicted amount of data transferred, the predictednumber of users that are reached, or the predicted amount of geographicarea covered by the communication network 100 implementing the trainingpolicy. The utility value may be equal to the value of predicted amountsor numbers associated with the performance metrics, or may be determinedbased on the ratio of a predicted performance metric to a maximum numberof the performance metric. As such, in this instance, the utility valuemay increase when the predicted performance metric increases.Conversely, the utility value may decrease when the predictedperformance metric decreases.

The one or more processors 310 may associate the utility value with thetraining policy, such as in the database. This association may be usedto inform subsequent policy determinations, as described below. Both thetraining policy and the utility value may be stored in the database. Theprocess of determining a policy for a given state of the communicationnetwork 100 and associating a utility value to the policy may berepeated in order to perform machine learning.

In FIG. 4B, at block 408, to operate the communication network 100, afirst implementation policy may be determined by the one or moreprocessors 310 for a second time interval using the database in themanner described above with respect to the training policy. The firstimplementation policy may be determined after the one or more processors310 have been trained as a neural network, as described in blocks 402,404, and 406. For example, the one or more processors 310 may receiveinput data related to the state of the communication network 100 and theoperation of the communication network 100 from one or more sensors ofthe communication devices. The input data may be received in a same orsimilar manner as described above in block 402. The set of outputfeatures for the first implementation policy may be determined based onprevious policies in the database. In one example, the set of outputfeatures may be an output of the trained neural network that created theprevious policies in response to previous inputs. In another example,the set of output features may be determined based on previous policiessimilar to the process as described in block 404, such as by identifyinga trend or pattern in the output features.

For example, the set of output features of the first implementationpolicy may include characteristics of a communication beam for acommunication link between a first communication device of a HAPterminal and a second communication device of a terrestrialcommunication terminal in a geographic area. The characteristics are thesame or similar to the characteristics of the communication beam in thetraining policy described in block 404. Additionally or alternatively,the set of output features may include characteristics of acommunication beam between a third communication device of a HAPterminal and a client device in a geographic area.

At block 410, the first implementation policy may then be implemented inthe communication network 100 to transfer data through the communicationnetwork 100. The one or more processors 310 may transmit instructions toone or more of the communication devices 102, 104, 106, 108, 110 basedon the output features determined for the first implementation policy.The instructions may cause the one or more communication devices to forma plurality of links that create at least one path through thecommunication network 100. The plurality of links may include one ormore links with client devices 120, 122 and/or server device 124. Theinstructions may also cause the one or more communication devices toadjust a characteristic of one or more communication beams, such as apointing direction, a power, a bandwidth, or a number of channels of acommunication beam. The instructions may also cause a change to atrajectory of a moving terminal, such as a HAP terminal corresponding toone of the communication devices.

The process of determining implementation policies described in blocks408 and 410 may then be repeated for one or more iterations. Iterationsmay be performed at regular time intervals, when a communication devicetravels a set distance, or when a length of a communication linkincreases or decreases by a set distance. Alternatively or additionally,iterations may be performed when another change is detected in acommunication device or in a communication network, such as, forexample, a set amount of decrease in battery level or a rotation of thecommunication device by a set amount.

In some implementations, the process further includes, whileimplementing the first implementation policy during the second timeinterval, data may be collected regarding actual performance of thecommunication network in the second time interval at block 412. Forexample, the collected data may include user equipment measurementreports, continuous quality improvement (CQI) reports, uplinksignal-to-noise ratio (UL SINR) reports, or other observablemeasurements. The collected data may also include information detectedusing the sensors of one or more of the communication devices, such asthe one or more sensors 218 of communication device 102.

At block 414, a utility value may be determined as a function of thecollected data and associated with the first implementation policy andstored in the database in a same or similar manner as described in block406. The utility value of the first implementation policy may be addedto the database with previously determined utility values and be used toupdate the trend or pattern in the output features. A secondimplementation policy may then be determined using the updated trend orpattern for a third time interval.

In addition, as shown in FIG. 4C, the one or more processors 310 maydetermine the first implementation policy as described in block 408.Then, at block 416, the one or more processors 310 may select differentoutput features from the set of output features for the firstimplementation policy. The different output features may be a variationof the set of output features for the first implementation policy. Forexample, the variation may include an increase or decrease to a shape,power, or frequency of a communication beam by a small degree, such asby 5% or more or less. The variation may also include an adjustment of adirection of the communication beam by a small degree, such as by 5% ormore or less, or a selection of a different channel designation.Alternatively, the different output features may be selected at randomwithout using the first implementation policy as a reference. Selectingdifferent output features may allow for the discovery of improvedpolicies that may not be anticipated by the trained neural network. Atblock 418, the different output features may be implemented in thecommunication network 100 by the one or more processors 310. At block420, the one or more processors 310 may collect data regarding actualperformance of the communication network 100 using the different outputfeatures similar to block 412. At block 422, the one or more processors310 may determine the utility value of the different output featuressimilar to block 414 and update the database of determined utilityvalues and policies for use in future iterations.

In some alternatives, when the communication network is configured for agiven signal type different from free-space optical communication, suchas millimeter wave, the reinforcement learning may be performed usinginternal and external influences on the given signal type.

The features described above may provide a more efficient means fordetermining features for a temporospatial software-defined communicationnetwork configured for free-space optical communication. The networkfeatures may be determined in shorter intervals and may take intoaccount a greater amount of variables, such as the motion of each nodein the temporospatial software-defined communication network or analignment of the nodes for optical communication. The machine learningmodel may be especially useful for a temporospatial software-definedcommunication network in order to account for all the variables thatarise when nodes are moving with respect to one another. The variablesfor the communication network may increase greatly for every additionalnode of the network. The features also allow for an improved performanceof the communication network as better network features are selectedover time based on associated utility values of past settings. Inaddition, a usable capacity of the network may be increased, whichallows more users to be supported by the network. The features may alsoallow for faster response to user requests for service.

Unless otherwise stated, the foregoing alternative examples are notmutually exclusive, but may be implemented in various combinations toachieve unique advantages. As these and other variations andcombinations of the features discussed above can be utilized withoutdeparting from the subject matter defined by the claims, the foregoingdescription of the embodiments should be taken by way of illustrationrather than by way of limitation of the subject matter defined by theclaims. In addition, the provision of the examples described herein, aswell as clauses phrased as “such as,” “including” and the like, shouldnot be interpreted as limiting the subject matter of the claims to thespecific examples; rather, the examples are intended to illustrate onlyone of many possible embodiments. Further, the same reference numbers indifferent drawings can identify the same or similar elements.

The invention claimed is:
 1. A method of operating a communicationnetwork that includes a plurality of nodes, the method comprising:receiving, by one or more processors, input data related to a state ofthe communication network and input data related to operation of thecommunication network for a first time interval; determining, by the oneor more processors, a first policy for the communication network basedon the input data, the first policy being a set of features for forminga plurality of communication links in the communication network over thefirst time interval, the plurality of communication links providing oneor more paths through the communication network; determining, by the oneor more processors, a performance metric associated with the firstpolicy; determining, by the one or more processors, a second policy forthe communication network for a second time interval based at least inpart on the performance metric associated with the first policy; andoperating, by the one or more processors, the communication network toimplement the second policy in the second time interval.
 2. The methodof claim 1, wherein the plurality of nodes includes one or morenon-geostationary satellites.
 3. The method of claim 1, wherein theinput data related to the operation of the communication networkincludes weather conditions or forecasts for atmospheric levels.
 4. Themethod of claim 1, wherein the one or more processors form a neuralnetwork.
 5. The method of claim 4, further comprising training theneural network by: receiving, by the one or more processors, traininginput data related to state information of the communication network;determining, by the one or more processors, a training policy based onthe training input data; simulating, by the one or more processors, thetraining policy based on internal and external influences of thecommunication network; and determining, by the one or more processors, autility value of the training policy according to the simulation; andwherein determining the first policy is further based on the trainingpolicy and the utility value of the training policy.
 6. The method ofclaim 1, wherein determining the first policy includes: identifying atrend in features of policies stored in a database; and selectingfeatures for the first policy that increase the performance metric ofthe communication network according to the trend.
 7. A system foroperating a communication network that includes a plurality of nodes,the system comprising one or more processors configured to: receiveinput data related to a state of the communication network and inputdata related to operation of the communication network for a first timeinterval; determine a first policy for the communication network basedon the input data, the first policy being a set of features for forminga plurality of communication links in the communication network over thefirst time interval, the plurality of communication links providing oneor more paths through the communication network; determine a performancemetric associated with the first policy; determine a second policy forthe communication network for a second time interval based at least inpart on the performance metric associated with the first policy; andoperate the communication network to implement the second policy in thesecond time interval.
 8. The system of claim 7, further comprising oneor more nodes of the plurality of nodes.
 9. The system of claim 8,wherein the one or more nodes includes a non-geostationary satellite.10. The system of claim 7, wherein the input data related to theoperation of the communication network includes weather conditions orforecasts for atmospheric levels.
 11. The system of claim 7, wherein theone or more processors form a neural network.
 12. The system of claim11, wherein the one or more processors are further configured to trainthe neural network by: receive training input data related to stateinformation of the communication network; determine a training policybased on the training input data; simulate the training policy based oninternal and external influences of the communication network; anddetermine a utility value of the training policy according to thesimulation; and wherein the first policy is determined further based onthe training policy and the utility value of the training policy. 13.The system of claim 7, wherein the first policy is determined toincludes one or more features that increase the performance metric ofthe communication network based on a trend in features of policiesstored in a database.
 14. A non-transitory, tangible computer-readablestorage medium on which computer readable instructions of a program arestored, the instructions, when executed by one or more processors, causethe one or more processors to perform a method, the method comprising:receiving input data related to a state of a communication network andinput data related to operation of the communication network for a firsttime interval; determining a first policy for the communication networkbased on the input data, the first policy being a set of features forforming a plurality of communication links in the communication networkover the first time interval, the plurality of communication linksproviding one or more paths through the communication network;determining a performance metric associated with the first policy;determining a second policy for the communication network for a secondtime interval based at least in part on the performance metricassociated with the first policy; and operating the communicationnetwork to implement the second policy in the second time interval. 15.The storage medium of claim 14, wherein the communication networkincludes one or more non-geostationary nodes.
 16. The storage medium ofclaim 14, wherein the input data related to the operation of thecommunication network includes weather conditions or forecasts foratmospheric levels.
 17. The storage medium of claim 14, whereindetermining the first policy includes: identifying a trend in featuresof policies stored in a database; and selecting features for the firstpolicy that increase the performance metric of the communication networkaccording to the trend.